package skladowisko;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Krzysiek
 */
public class Wagon 
{
    private int numer;
    private String opis;
    
    private ListaWagonowa listaWagonowa = new ListaWagonowa(this);
    private ZawartoscWagonu zawartoscWagonu;
    private Pociag pociag;

    //***************************************************************************
    public Wagon(Pociag pociag, int numer, int iloscKontenerow, ListaWagonowa lista)
    {
        this.pociag = pociag;
        this.numer = numer;
        listaWagonowa = lista;
        zawartoscWagonu = new ZawartoscWagonu(this, iloscKontenerow);
        zawartoscWagonu.odtworz(lista);
    }
    //***************************************************************************
    public Wagon(Pociag pociag, int numer, int iloscKontenerow)
    {
        this.pociag = pociag;
        this.numer = numer;       
        zawartoscWagonu = new ZawartoscWagonu(this, iloscKontenerow);
    }
    //***************************************************************************

    @Override
    public String toString()
    {      
        StringBuilder sb = new StringBuilder();
        sb.append("Wagon: numer - ");
        sb.append(numer);
        sb.append(", ");
      
        sb.append(zawartoscWagonu.toString());

        sb.append("\n");
        return sb.toString();
    }

    //***************************************************************************
    public ZawartoscWagonu getZawartoscWagonu()
    {
        return this.zawartoscWagonu;
    }
    //***************************************************************************
    public List<Kontener> pobierzWszystkie()
    {
        List<Kontener> wynik = new ArrayList<Kontener>();
        for(int i=0;i<zawartoscWagonu.getIloscMiejsc();i++)
            if(zawartoscWagonu.getObiektAt(i+1) != null)
                wynik.add(zawartoscWagonu.getObiektAt(i+1));

        return wynik;
    }
    //***************************************************************************
    public int getNumer()
    {
        return this.numer;
    }
    //***************************************************************************
}
